1. Technical Field
The present inventive concept relates generally to a message-passing decoding, and more particularly to utilization of memory in soft and hard decision decoders.
2. Discussion of Related Art
Forward error correction (FEC) is a technique for controlling errors in the received messages over unreliable or noisy communication channels and storage devices. Source information is encoded in a redundant way using an error-correcting code (ECC). The redundancy allows the decoder to detect a limited number of errors that may occur anywhere in the message, and often to correct these errors without retransmission.
The two main categories of FEC codes are block codes and convolutional codes. Block codes work on fixed-size blocks (packets) of bits or symbols of predetermine size. Convolutional codes work on bit or symbol streams of arbitrary length. Classical FEC schemes are usually implemented using hard-decision decoding techniques, where a hard decision is made before the decoder operates and not afterwards. That is, first a decision is made for each individual bit and then the decoder operates on that stream of bits (which may include erroneous bits to be corrected). Soft-decision decoding on the other hand operates on richer observations. For example, in communication systems, it is usually discretized analog signals. Soft decision decoding techniques allow for more improved error performance than hard decision decoding techniques. However, soft decision decoding techniques are costly in terms of implementation and additional performance measures.
Modern decoding schemes are based on message-passing techniques. During a decoding process that uses a message-passing technique, which is usually an iterative process, intermediate messages are made by the decoding process. These messages are stored in a dedicated memory, and these messages are frequently updated and utilized by a processing device in charge of the decoding. The cardinality of the set of possible decoder messages has a substantial effect on the performance of message-passing decoding techniques. Usually hard decision decoding techniques require messages with lower alphabet cardinality than soft decision decoding techniques. The cardinality of the message alphabet contribute to the size of the dedicated memory for the tentative storage of the decoder messages. Consequently, hard decision decoding generally uses less memory than soft decision decoding. It is common to implement a decoding device such that the inner memory used for messages in a message-passing decoding technique will support both hard and soft decision decoding techniques. Thus, a large part of the memory of a decoder that performs both hard and soft decision is idle when hard decision decoding is performed.
Accordingly, there is a need for a more efficient utilization of memory in implementing soft and hard decision decoders. This need is further stressed where several parallel decoding units are operating in parallel within a single device.